<?php 
/**
 * MessageBoard
 * ========================================================
 * Copy 2010-2012 iswu
 * Web:http://sirius.ccaeo.com
 * ========================================================
 * Author:iswu
 * Date:${date}
 */
//防止恶意调用
if (!defined('IN_TG')){
    exit('Access Defined!');
}

//检测函数是否存在
if(!function_exists('_alert_back')){
    exit('_alert_back()函数不存在，请检测!');
}

if(!function_exists('_mysql_string')){
    exit('_mysql_string()函数不存在，请检测!');
}

/*
 * _check_uniqid
 * @access public
 * @param string $_first_uniqid
 * */
function _check_uniqid($_first_uniqid, $_end_uniqid){
    if((strlen($_first_uniqid) != 40) || ($_first_uniqid != $_end_uniqid)){
        _alert_back('唯一标识符异常');
    }
    return _mysql_string($_first_uniqid);
}

/*
 * _check_username表示检测并过滤用户名
 * @access public
 * @param string $_string 受污染的用户名
 * @param int $_min_num 最小位数
 * @param int $_max_num 最大位数
 * @return string 过滤后的用户名
 * */
function _check_name($_string, $_min_num, $_max_num){
    global $_system;
    //去掉两边的空格
    $_string = trim($_string);
    
    //长度小于两位或者大于20位均不行
    if(mb_strlen($_string, 'utf-8') < $_min_num || mb_strlen($_string, 'utf-8') > $_max_num){
        if(function_exists('_alert_back')){
            _alert_back('长度小于'.$_min_num.'位或者大于'.$_max_num.'位!');
        }else{
            exit('_alert_back()函数不存在，请检测');
        }
    }
    
    //限制敏感字符  左尖括号 右尖括号 单引号 双引号 空格 tab键都不允许出现  
    // $_char_pattern = '/[<>\'\"\ \ ]/';
    $_char_pattern = '/[<>\'\"\ ]/';
    if(preg_match($_char_pattern, $_string)){
        _alert_back('用户名不得包含敏感字符！');
    }
    
    //限制敏感用户名
    $_mg = explode('|',$_system['string']);
    //告诉用户那些不能注册
    // $_mg[0] = '沈运武';
    // $_mg[1] = '李彦宏';
    // $_mg[2] = '雷军';
    //
    foreach ($_mg as $value){
        $_mg_string .='['. $value.']'.'\n'; 
    }
    //这里采用的绝对匹配,沈运武123同样可以注册
    if(in_array($_string, $_mg)){
        _alert_back($_mg_string.'敏感用户名不得注册！');
    }
    //将用户名转义输入
    return mysql_real_escape_string($_string);
}

/*
 * _check_password 验证密码
 * @access public
 * @param string $_first_pass 
 * @param string $_end_pass
 * @param int $_min_num 
 * @return string $_first_pass 返回一个加密后的密码
 * */
function _check_phone($_first_pass, $_num){
    //判断密码
    if(strlen($_first_pass) != $_num){
        _alert_back('手机号码不是'.$_num.'位！');
    }
    
    //将密码返回打印
    return $_first_pass;
}

function _check_modify_phone($_string, $_min_num){
    //判断密码
    if (!empty($_string)) {    
        if(strlen($_string) < $_min_num){
            _alert_back('密码不得小于'.$_min_num.'位！');
        }
    } else {
        return null;
    }
    return sha1($_string);
}

/*
 * _check_question 返回密码提示
 * @access public
 * @param string $_string 
 * @param string $_min_num
 * @param int $_max_num 
 * @return string $_string 返回密码提示
 * */
function _check_class($_string, $_min_num, $_max_num){
    $_string = trim($_string);
    //长度小于4位或者大于20位均不行
    if(mb_strlen($_string, 'utf-8') < $_min_num || mb_strlen($_string, 'utf-8') > $_max_num){
        if(function_exists('_alert_back')){
            _alert_back('学院专业班级不得小于'.$_min_num.'位或者大于'.$_max_num.'位!');
        }else{
            exit('_alert_back()函数不存在，请检测');
        }
    }
    
    //返回密码提示
    return mysql_real_escape_string($_string);
}

function _check_message($_answ, $_min_num, $_max_num){
    $_answ = trim($_answ);
    //长度小于4位或者大于20位均不行
    if(mb_strlen($_answ, 'utf-8') < $_min_num || mb_strlen($_answ, 'utf-8') > $_max_num){
        if(function_exists('_alert_back')){
            _alert_back('个人信息不得小于'.$_min_num.'位或者大于'.$_max_num.'位!');
        }else{
            exit('_alert_back()函数不存在，请检测');
        }
    }

    //加密返回
    return _mysql_string($_answ);
}

/**
 * _check_sex 性别
 * @access public
 * @param string $_string
 * @return string
 */
function _check_sex($_string){
    return _mysql_string($_string);
}

/**
 * _check_face 头像
 * @access public
 * @param string $_string
 * @return string
 */
function _check_face($_string){
    return _mysql_string($_string);
}
/*
 * _check_email 返回邮箱地址
 * @access public
 * @param string $_string
 * @param string $_string
 * @return string $_string 返回邮箱地址
 * */
function _check_email($_string, $_min_num, $_max_num){
    
    //设置为选填内容
    if(empty($_string)){
        return null;
    }else{
        //参考bnbbs@163.com
        //[a - z A - Z 0 - 9] => \w
        if(!preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', $_string)){
            _alert_back('邮件格式不正确！');
        }
    
        if(strlen($_string) < $_min_num || strlen($_string) > $_max_num){
            _alert_back('邮件长度不合法！');
        }
    }
    return _mysql_string($_string);
}

/*
 * _check_qq 返回qq号码
 * @access public
 * @param int $_string
 * @param int $_string
 * @return int $_string 返回qq号码
 * */
function _check_qq($_string){
    if(empty($_string)){
        return null;
    }else{
        if(!preg_match('/^[1-9]{1}[0-9]{4,9}$/', $_string)){
            _alert_back('qq号码不正确！');
        }
    }
    
    return $_string;
}

/*
 * _check_qq 返回验证网址
 * @access public
 * @param string $_string
 * @param string $_string
 * @return string $_string 验证网址
 * */
function _check_url($_string, $_max_num){
    if(empty($_string) || ($_string == 'http://')){
        return null;
    }else{
        //http://www.sirius.ccaeo.com
        //?表示0次或者一次
        if(!preg_match('/^https?:\/\/(\w+\.)?[\w\-\.]+(\.\w+)+$/', $_string)){
            _alert_back('The url is wrong!');
        }
        if(strlen($_string) > $_max_num){
            _alert_back('网址太长');
        }
    }
    
    return $_string;
}

function _check_content($_string){
    if (mb_strlen($_string, 'utf-8') < 10 || mb_strlen($_string, 'utf-8') > 200) {
        _alert_back('短信内容不得小于10位或者大于200位！');
    }
    return $_string;
}

function _check_post_title($_string,$_min,$_max) {
    if (mb_strlen($_string,'utf-8') < $_min || mb_strlen($_string,'utf-8') > $_max) {
        _alert_back('帖子标题内容不得小于'.$_min.'位大于'.$_max.'位！');
    }
    return $_string;
}

function _check_post_content($_string,$_num) {
    if (mb_strlen($_string,'utf-8') < $_num) {
        _alert_back('帖子内容不得小于'.$_num.'位！');
    }
    return $_string;
}

function _check_autograph($_string,$_num) {
    if (mb_strlen($_string,'utf-8') > $_num) {
        _alert_back('帖子内容不得大于'.$_num.'位！');
    }
    return $_string;
}

function _check_dir_name($_string,$_min,$_max) {
    if (mb_strlen($_string,'utf-8') < $_min || mb_strlen($_string,'utf-8') > $_max ) {
        _alert_back('相册名不得小于'.$_min.'位或者不能大于'.$_max.'位！');
    }
    return $_string;
}

function _check_dir_password($_string,$_num) {
    if (strlen($_string) < $_num) {
        _alert_back('密码不得小于'.$_num.'位！');
    }
    return sha1($_string);
}

function _check_photo_url($_string) {
    if (empty($_string)) {
        _alert_back('地址不能为空！');
    }
    return $_string;
}

?>